/*! \file fdmamericanstepcondition.hpp
    \brief american step condition for multi dimensional problems using american start date
*/

#ifndef quantlib_fdm_american_exercise_step_condition_hpp
#define quantlib_fdm_american_exercise_step_condition_hpp

#include <ql/experimental/finitedifferences/fdmamericanstepcondition.hpp>

namespace QuantLib {

    class FdmAmericanExerciseStepCondition : public FdmAmericanStepCondition 
	{
      public:
        FdmAmericanExerciseStepCondition(
			const Time & americanStartTime,
            const boost::shared_ptr<FdmMesher> & mesher,
            const boost::shared_ptr<FdmInnerValueCalculator> & calculator);

        void applyTo(Array& a, Time t) const;

	private:
		Time americanStartTime_;
    };
}

#endif